Simple এবং Recursive ফাইল কপি করা

Java Technologies - অ্যাপাচি কমন্স আইও (Apache Common IO) Copying এবং Moving Techniques |
205
205

Apache Commons IO লাইব্রেরি ফাইল কপি করার জন্য বেশ কিছু কার্যকরী মেথড সরবরাহ করে। এর মধ্যে simple file copy এবং recursive file copy কৌশল দুটি সবচেয়ে বেশি ব্যবহৃত হয়। এই ফিচারগুলি খুবই কার্যকরী, বিশেষ করে যখন আপনাকে ফাইল এবং ডিরেক্টরি কপি করতে হয়। নিচে, আমরা এই দুটি পদ্ধতি নিয়ে বিস্তারিত আলোচনা করব।


1. Simple File Copy


Simple file copy এর মাধ্যমে একটি ফাইলকে এক জায়গা থেকে অন্য জায়গায় কপি করা হয়। FileUtils.copyFile() মেথডটি Apache Commons IO লাইব্রেরির একটি জনপ্রিয় মেথড যা একটি ফাইল কপি করতে ব্যবহৃত হয়।

Simple File Copy উদাহরণ:

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;

public class SimpleFileCopyExample {
    public static void main(String[] args) {
        // Create File objects for the source and destination files
        File sourceFile = new File("source.txt");
        File destFile = new File("destination.txt");

        try {
            // Copy the source file to the destination
            FileUtils.copyFile(sourceFile, destFile);

            System.out.println("File copied successfully.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • FileUtils.copyFile(sourceFile, destFile) মেথড ব্যবহার করে একটি ফাইলকে সরাসরি কপি করা হয়েছে।
  • যদি source.txt ফাইলটি destination.txt ফাইলে কপি হয়, তাহলে এটি সফলভাবে কপি হয়ে যাবে।

FileUtils.copyFile() মেথডের মাধ্যমে আপনি ফাইল কপি করার সাথে সাথে ফাইলের কন্টেন্টও কপি করতে পারেন।


2. Recursive File Copy


Recursive file copy এর মাধ্যমে একটি ডিরেক্টরির মধ্যে থাকা সকল ফাইল এবং সাবডিরেক্টরি সহ সমস্ত কন্টেন্ট কপি করা হয়। FileUtils.copyDirectory() এবং FileUtils.copyDirectoryToDirectory() মেথডগুলো Apache Commons IO লাইব্রেরিতে ব্যবহৃত হয় রিকার্সিভ ফাইল কপির জন্য। এই মেথডগুলি একটি ডিরেক্টরি এবং এর ভিতরের সমস্ত উপাদানকে কপি করতে সাহায্য করে।

Recursive File Copy উদাহরণ:

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;

public class RecursiveFileCopyExample {
    public static void main(String[] args) {
        // Create File objects for the source and destination directories
        File sourceDir = new File("sourceDirectory");
        File destDir = new File("destinationDirectory");

        try {
            // Recursively copy the entire directory
            FileUtils.copyDirectory(sourceDir, destDir);

            System.out.println("Directory and its contents copied successfully.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • FileUtils.copyDirectory(sourceDir, destDir) মেথড ব্যবহার করে sourceDirectory ডিরেক্টরির সমস্ত ফাইল এবং সাবডিরেক্টরি সহ destinationDirectory তে কপি করা হয়েছে।

এটি রিকার্সিভ ফাইল কপি এবং sub-directories সহ ফাইল কপি করার জন্য উপযুক্ত।

একই ডিরেক্টরিতে ডিরেক্টরি কপি করা (copyDirectoryToDirectory):

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;

public class CopyDirectoryToDirectoryExample {
    public static void main(String[] args) {
        // Create File objects for the source directory and target directory
        File sourceDir = new File("sourceDirectory");
        File targetDir = new File("targetDirectory");

        try {
            // Copy the directory to another directory
            FileUtils.copyDirectoryToDirectory(sourceDir, targetDir);

            System.out.println("Directory copied successfully to the target directory.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • FileUtils.copyDirectoryToDirectory(sourceDir, targetDir) মেথডটি sourceDirectory কে targetDirectory এর মধ্যে কপি করবে।

3. ফাইল কপি করার অন্যান্য গুরুত্বপূর্ণ মেথড


FileUtils ক্লাসে কিছু অতিরিক্ত মেথড রয়েছে যেগুলি ফাইল কপি করার কাজে সহায়ক হতে পারে:

  1. copyFileToDirectory(): একটি ফাইলকে একটি ডিরেক্টরিতে কপি করা।

    FileUtils.copyFileToDirectory(sourceFile, targetDir);
    
  2. copyDirectoryToDirectory(): একটি ডিরেক্টরি অন্য একটি ডিরেক্টরিতে কপি করা।

    FileUtils.copyDirectoryToDirectory(sourceDir, targetDir);
    
  3. copyFile(): একটি ফাইলকে সরাসরি কপি করা (যেমন উপরে আলোচনা করা হয়েছে)।

    FileUtils.copyFile(sourceFile, destFile);
    
  4. copyDirectory(): একটি ডিরেক্টরি এবং তার কন্টেন্ট রিকার্সিভলি কপি করা।

    FileUtils.copyDirectory(sourceDir, destDir);
    

4. Exception Handling এবং Error Management


ফাইল কপি করার সময় বিভিন্ন ধরনের IOException ঘটতে পারে, যেমন:

  • ডিরেক্টরি বা ফাইলের অনুমতি সমস্যা
  • ফাইলের অস্তিত্ব না থাকা
  • ডিস্ক স্পেস কম হওয়া

এ কারণে try-catch ব্লক ব্যবহার করে IOException বা অন্যান্য সম্ভাব্য I/O exceptions হ্যান্ডলিং করা উচিত।

try {
    FileUtils.copyFile(sourceFile, destFile);
} catch (IOException e) {
    System.err.println("Error occurred while copying the file: " + e.getMessage());
    e.printStackTrace();
}

5. কাস্টম ফাইল কপি অপশন (Custom File Copy Options)


আপনি copyFile() বা copyDirectory() মেথড ব্যবহার করার সময় overwrite অপশন প্রয়োগ করতে পারেন, যেমন যদি গন্তব্য ফাইলে আগের কপি থাকে তবে তা ওভাররাইট করা:

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;

public class CustomFileCopyExample {
    public static void main(String[] args) {
        // Create File objects for the source and destination files
        File sourceFile = new File("source.txt");
        File destFile = new File("destination.txt");

        try {
            // Copy the file with overwrite option
            FileUtils.copyFile(sourceFile, destFile);

            System.out.println("File copied successfully with overwrite.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে copyFile() মেথডের মাধ্যমে ফাইল কপি করা হচ্ছে এবং যদি destination.txt ফাইলটি আগে থেকেই থাকে, তবে সেটি ওভাররাইট করা হবে।


সারাংশ


Apache Commons IO লাইব্রেরির FileUtils ক্লাসের সাহায্যে simple file copy এবং recursive file copy খুব সহজে করা যায়। simple file copy সাধারণত একটি ফাইলের কপি তৈরি করতে ব্যবহৃত হয়, এবং recursive file copy এক বা একাধিক ডিরেক্টরির ভিতরের সমস্ত ফাইল এবং সাবডিরেক্টরি কপি করতে ব্যবহৃত হয়। copyDirectory(), copyFile(), copyFileToDirectory() ইত্যাদি মেথডগুলি এই কার্যক্রমকে সহজ এবং দ্রুত করে তোলে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion